package cn.shotsapp.shots.data.account.repository;

/**
 * Created by perqin on 16-12-2.
 */

public abstract class IAccountRepository {
    /**
     * Request sms code
     * @param phoneNumber Phone number to be sent the code
     * @param listener callback
     */
    public abstract void sendSMSCode(String phoneNumber, StubListener listener);

    /**
     * Verify user's code with sent code
     * @param phoneNumber The phone number that received the code
     * @param SMSCode The code user inputs
     * @param listener callback
     */
    public abstract void verifyCode(String phoneNumber, String SMSCode, StubListener listener);

    /**
     * Check whether a local signed in account is available
     * @return Whether a local signed in account is available
     */
    public abstract boolean available();

    /**
     * Ask the server for a temporary trial ID
     * @param listener callback
     */
    public abstract void requestTrialAccount(StubListener listener);

    public interface StubListener {}
}
